﻿define([
    'domReady!',
    'jquery-confirm',
    'bootstrap-table',
    'bootstrap-table-zh-CN',
    'bootstrap-select',
    'defaults-zh_CN',
    'lyear-loading',
    'validate',
    'validate_config',
    'jquery.ajaxRequest'
], function (domReady) {

    function init() {
        //页面数据绑定
        dataBind();
    }

    function dataBind() {
        // table使用
        $('#userRoleTable').bootstrapTable({
            classes: 'table table-bordered table-hover table-striped',
            url: '/BMS/Role/GetUserRoleList',
            method: 'post',
            dataType: 'json',
            uniqueId: 'id',
            idField: 'id',
            toolbar: '',
            clickToSelect: false,
            showColumns: false,
            showRefresh: false,
            showToggle: false,
            pagination: true,
            sortOrder: "desc",
            queryParams: function (params) {
                var temp = {
                    limit: params.limit,         // 每页数据量
                    offset: params.offset,       // sql语句起始索引
                    page: (params.offset / params.limit) + 1,
                    sort: 'Id desc',           // 排序的列名
                    sortOrder: params.order,      // 排序方式'asc' 'desc'
                    roleId: id
                };
                return temp;
            },
            sidePagination: "server",
            pageNumber: 1,                       // 初始化加载第一页，默认第一页
            pageSize: 10,                        // 每页的记录行数
            pageList: [10, 25, 50, 100],         // 可供选择的每页的行数
            //search: true,                      // 是否显示表格搜索，此搜索是客户端搜索
            //showExport: true,        // 是否显示导出按钮, 导出功能需要导出插件支持(tableexport.min.js)
            //exportDataType: "basic", // 导出数据类型, 'basic':当前页, 'all':所有数据, 'selected':选中的数据
            columns: [{
                field: 'chk',
                checkbox: true    // 是否显示复选框
            }, {
                field: 'uid',
                title: '用户Id',
            }, {
                field: 'nickname',
                title: '昵称'
            }, {
                field: 'realname',
                title: '真实姓名',
            }, {
                field: 'portrait',
                title: '头像',
                formatter: function (value, row, index) {
                    var html = "<img class='img-avatar img-avatar-48 m-r-10' src='" + row.portrait + "' />";
                    return html;
                }
            }, {
                field: 'account',
                title: '账号'
            }, {
                field: 'phone',
                title: '手机号'
            },
            {
                field: 'lastUser',
                title: '操作人'
            },
            {
                field: 'lastTime',
                title: '操作时间'
            }, {
                field: 'operate',
                title: '操作',
                formatter: function (value, row, index) {
                    var html =
                        '<a href="#!" class="btn btn-xs btn-danger del-btn" title="删除" data-toggle="tooltip"><i class="mdi mdi-window-close"></i>删除</a>';
                    return html;
                },  // 自定义方法
                events: {
                    'click .del-btn': function (event, value, row, index) {
                        var ids = [row.id];
                        del(ids)
                    }
                }
            }],

            onLoadSuccess: function (data) {
                $("[data-toggle='tooltip']").tooltip();
            }
        });
        $('#userTable').bootstrapTable({
            classes: 'table table-bordered table-hover table-striped',
            url: '/BMS/Role/GetUserList',
            method: 'post',
            dataType: 'json',
            uniqueId: 'uid',
            idField: 'uid',
            toolbar: '',
            clickToSelect: false,
            showColumns: false,
            showRefresh: false,
            showToggle: false,
            pagination: true,
            sortOrder: "desc",
            queryParams: function (params) {
                var temp = {
                    limit: params.limit,         // 每页数据量
                    offset: params.offset,       // sql语句起始索引
                    page: (params.offset / params.limit) + 1,
                    sort: 'Uid desc',           // 排序的列名
                    sortOrder: params.order,      // 排序方式'asc' 'desc'
                    roleId: id,
                    searchType: $("#searchType").val(),
                    searchText: $("#searchText").val()
                };
                return temp;
            },
            sidePagination: "server",
            pageNumber: 1,                       // 初始化加载第一页，默认第一页
            pageSize: 5,                        // 每页的记录行数
            pageList: [5, 10, 15, 20],         // 可供选择的每页的行数
            //search: true,                      // 是否显示表格搜索，此搜索是客户端搜索
            //showExport: true,        // 是否显示导出按钮, 导出功能需要导出插件支持(tableexport.min.js)
            //exportDataType: "basic", // 导出数据类型, 'basic':当前页, 'all':所有数据, 'selected':选中的数据
            columns: [{
                field: 'ck',
                checkbox: true    // 是否显示复选框
            }, {
                field: 'uid',
                title: '用户Id',

            }, {
                field: 'account',
                title: '账号'
            }, {
                field: 'phone',
                title: '手机号'
            }, {
                field: 'nickname',
                title: '昵称'
            }, {
                field: 'realname',
                title: '真实姓名',
            }, {
                field: 'gender',
                title: '性别',
            }],
            onLoadSuccess: function (data) {
                $("[data-toggle='tooltip']").tooltip();

            }

        });
    }

    function del(ids) {
        $.confirm({
            title: '操作确认',
            content: '确定要删除吗？',
            escapeKey: 'cancelAction',
            buttons: {
                confirm: {
                    btnClass: 'btn-red',
                    text: '是',
                    keys: ['enter'],
                    action: function () {
                        $(this).ajaxRequest("/BMS/Role/DeleteUserRole", { ids: ids, roleId: id }, function () { $('#userRoleTable').bootstrapTable('refreshOptions', {}) }, false);
                    }
                },
                cancelAction: {
                    text: '再想想',
                    action: function () {

                    }
                }
            }
        });
    }

    function bind() {
        //删除事件
        $(document).on('click', '#btnDel', function () {
            var ids = [];
            $.each($('#userRoleTable').bootstrapTable('getAllSelections'), function (i, row) {
                ids.push(row.id);
            });

            del(ids)
        });
        //新增按钮事件
        $(document).on("click", "#btnAdd", function (event) {
            $("#dialogModal").modal("show");
        })
        $(document).on("click", "#btnSearch", function () {
            $("#userTable").bootstrapTable('refresh')
        })
        $(document).on("click", "#btnSave", function () {
            $(this).attr('disabled', true);
    
            var uids = [];
            $.each($('#userTable').bootstrapTable('getAllSelections'), function (i, row) {
                uids.push(row.uid);
            });

            $(this).ajaxRequest("/BMS/Role/AddUserRole", { roleId: id, uids: uids }, function (data) {
                $('#userTable').bootstrapTable('refresh');
                $('#userRoleTable').bootstrapTable('refresh');
                $("#dialogModal").modal("hide");
             
            }, true, false, function () { $("#btnSave").prop('disabled', false) });
        })
        //模态框消失事件
        $("#dialogModal").on("hidden.bs.modal", function (e) {
            $("#btnSave").prop('disabled', false)
        })
    }

    $(document).ready(function () {
        init();
        bind();
    })
});